As the cost of increasingly complex integrated circuits continues to fall, systems companies are increasingly embedding RISC processors in their non-computer systems. As a result, most of their development is now in software, where it used to be in hardware design. Today whole applications, such as modems, digital vidio decompression, and digital telephony can be done in software, if the processor has enough performance. Software development also has the advantage of flexability and a faster time to market, which is required to offset the decreasing life cycles of today's electronic products. Unfortunately, software is much slower than hardware, and as a result requires very expensive high end processors to meet the computational requirements of some of these applications. Field Programmable Gate Arrays or FPGAs have also been increasingly used because they offer greater flexability and shorter development cycles than traditional ASICs, while providing most of the performance advantages of a dedicated hardware solution. This explains why companies which have been providing field programmable or embedded processor solutions have been growing so fast.
It has long been known in the software industry, that any application has most of its computation time spent in a small section of code. A general trend in the industry has been to build software applications, standardize the interfaces to these computationaly intensive sections of code, and eventually turn them into dedicated hardware. A large number of companies are doing just that; providing chips that do everying from video graphics accelleration to MPEG digital video decompression. The problem is these dedicated chips generally take a number of years to create, and then are only good for their specific tasks. As a result, a number of companies have started to provide complex digital signal processing chips, or DSPs, which can be programed to do some of these tasks. They are more flexable than hardware, but less flexable than standard processors for writing software.
The logical extension of these trends is to create a chip which is a processor with dedicated hardware that replaces the computationally intensive sections of the application code. In fact most complex MPEG chips already have dedicated embedded processors in them, but they are not very flexable. To provide the flexability the dedicated hardware must be like an FPGA where the computationally intensive sections of the application code can be translated to hardware and loaded into the FPGA. Unfortunately, FPGAs are 5-10% as dense as Gate Arrays per useable function. Since there are usually many different sections of computational intensive code that must excuted at different times within any given application, a more efficient way of using the inherently inefficient FPGA logic is to repeatedly load each specific hardware logic function as it is needed, and then replace it with the next function. A number of researchers in Universities and FPGA companies such as Xilinx have been developing ways to do this in FPGAs. They call this reconfigurable computing. What has not been done is the combination of a standard processor and this type of reconfigurable FPGA on a single chip.
In this patent we will describe a system comprised of a chip which contains both a standard processor, blocks of special FPGA logic, and unique interfaces between them that enables the correponding software tools to recompile the application code into a combination of software and reloadable hardware blocks. This capability will provide the customer the flexability of software development, with the performance of dedicated hardware solutions, while using our relatively inexpensive reconfigurable processor chips.